package com.test

/**
 * @Created by Orion
 * @Description
 */
object TestAttribution {
  def main(args: Array[String]): Unit = {
 val  evs = "e1,e2,e3,e5,e6"
    val ls = evs.split(",").toList
    // 确定一个数字列表   1 2 3 4 5 6
     val res1 =  (1 to ls.size).toList
    // 确定一个数字列表   6 5 4 3 2 1
     val res2 = res1.reverse
    // 拉链操作 (1,6) , (2,5) , (3,4)  ,(4,3) (5,2) (6,1)
    val zip = res1.zip(res2).toList
    // 求绝对值
    val v = zip.map(tp => {
      // (5 3 1 1 3 5)
      Math.abs(tp._1 - tp._2)
    })
    // 求和 分母 计算占比
    val fm = v.sum
    // 事件列表和  权重列表 拉链
    val tuples = ls.zip(v)
    tuples.map(tp=>{
      // 计算位置归因值
      (tp._1 , tp._2.toDouble/fm)
    }).foreach(println)


  }

}
